package com.huluobo.jetpackkotlindemo2006a

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.huluobo.jetpackkotlindemo2006a.databinding.ActivityMainBinding
import com.huluobo.jetpackkotlindemo2006a.lifecycle.AdActivity

/**
 * ViewBinding总结:
 * 1.首先使用时需要在build.gradle中开启enabled = true
 * 2.开启之后所有的xml文件都会对应生成一个类,也就是由xml文件名生成的驼峰命名法的实现类
 * 3.(重点)setContentView(activityMainBinding.root),这个方法中不能直接用layout的id,需要使用binding的root才能绑定布局
 * 4.viewBinding的特点,具有空安全,视图(控件)绑定会对视图直接引用
 * 5.具有类型安全的属性,不需要进行强制转换,可以自动匹配xml文件中控件的类型
 */

class MainActivity : AppCompatActivity() {
    lateinit var activityMainBinding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(activityMainBinding.root)
//        setContentView(R.layout.activity_main)
//        TipDialog(this).show()
//        Handler().postDelayed({ finish() }, 2000)

        //通过Activity中的findViewById方法找到对应的View进行初始化
//        val edContent = findViewById<EditText>(R.id.ed_content)
//        val tvContent = findViewById<TextView>(R.id.tv_content)
//        val btnContent = findViewById<Button>(R.id.btn_content)

        //ButterKnife 通过注解的形式来进行控件的注入
//        @BindView(R.id.ed_content)
//        val edContent

        //kotlin-android-extensions 可以通过系统的插件来实现直接通过id名获取控件
//        ed_content.text="输入框"

        //使用viewBinding进行实例化
        activityMainBinding.edContent.setText("")
        activityMainBinding.tvContent.text = "123"
        activityMainBinding.btnContent.setOnClickListener {
            val intent = Intent(this, AdActivity::class.java)
            startActivity(intent)
        }
    }
}